home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Shareware / IDimager Personal 4.2.0.3 / setup_IDimager_Personal_V4.exe / {app} / Scripts / Meta Data Scripts / Remove XMP Property.psc < prev    next >
Text File  |  2008-02-16  |  1KB  |  53 lines

  1. // remove a specific XMP property for the selected images
  2.  
  3. var
  4.   AProperty, AId: String;
  5.   AXmp: TXMP;
  6.   AParam: TMacroParam;
  7.   i, AHit: Integer;
  8.   ACatItem: TCatalogItem;
  9. begin
  10.   AProperty := ReadFromRegistry ('Scripts\Remove XMP property', 'Property', 'dc:subject');
  11.  
  12.   if not InputQuery ('Enter XMP property', 'Property: ', AProperty) then
  13.     exit;
  14.  
  15.   AProperty := Trim(AProperty);
  16.   if (AProperty = '') or (Pos (':', AProperty) < 2) then
  17.   begin
  18.     Say ('No XMP property specified or no valid property specified. Make sure the property contains a ssemi-colon (:) character.');
  19.     exit;
  20.   end;
  21.  
  22.   WriteToRegistry ('Scripts\Remove XMP property', 'Property', AProperty);
  23.  
  24.   AId := LeftStr (AProperty, Pos(':', AProperty) - 1);
  25.  
  26.   AHit := 0;
  27.  
  28.   for i := 0 to Selected.Count - 1 do
  29.   begin
  30.     AXmp := TXMP.Create (False);
  31.  
  32.     Catalog.LoadXMPForImage (Selected.Items[i], AXmp, Options.CachedXMP);
  33.  
  34.     AParam := AXmp.XMPDesign.FindIdCommand (AId, AProperty, True);
  35.  
  36.     if AParam <> nil then
  37.     begin
  38.       // Say (AParam.StrContent);
  39.  
  40.       // delete the property
  41.       AParam.Free;
  42.       Catalog.SaveXMPForImage (Selected.Items[i], AXmp, Options.CachedXMP);
  43.       Inc (AHit);
  44.     end;
  45.  
  46.     AXmp.Free;
  47.  
  48.     ACatItem.Free;
  49.   end;
  50.  
  51.   Say (Format ('Done; %d removed', [AHit]));
  52. end;
  53.